home *** CD-ROM | disk | FTP | other *** search
/ Light ROM 1 / LIGHT-ROM 1 (Amiga Library Services)(1994).iso / ffdisks / d883.lha / BBBBS / BBBBS59.lha / rexx / ArcBrowse.rexx < prev    next >
OS/2 REXX Batch file  |  1993-03-25  |  6KB  |  220 lines

  1. /*      $VER: 5.8 ArcBrowse.rexx 25 Mar 1993 (25.3.93)
  2.    archives user defined browselist into file in users email
  3. it receives its arguments from rexxDoors/Make_BrowseList.rexx
  4. copyright 1991-92-93 Richard Lee Stockton FREELY DISTRIBUTABLE
  5. */
  6.  
  7. SIGNAL ON ERROR
  8. SIGNAL ON SYNTAX
  9. OPTIONS FAILAT 999999
  10.  
  11. PARSE ARG name lastbrowse alphaflag libflag liblist 
  12. lastbrowse=STRIP(lastbrowse)
  13.  
  14. IF ~DATATYPE(lastbrowse,'N') | name='' | alphaflag='' | libflag='' | liblist='' THEN
  15.   CALL GETOUT(20)
  16.  
  17. figarg='s:CONFIG.BBS'
  18. IF ~EXISTS(figarg) THEN figarg='BBS:BBS_TEXT/CONFIG.BBS'
  19. x=OPEN(f,figarg,'R')
  20. IF x=0 THEN
  21.   DO
  22.     SAY 's:CONFIG.BBS and BBS:BBS/CONFIG.BBS are both missing!'
  23.     CALL GETOUT(21)
  24.   END
  25. lynes.=''
  26. DO i=1 TO 33
  27.   lynes.i=READLN(f)
  28. END
  29. CALL CLOSE(f)
  30.  
  31. compos=POS('/*',lynes.1)
  32. IF compos>0 THEN lynes.1=LEFT(lynes.1,compos-1)
  33. bbsname = STRIP(lynes.1)
  34.  
  35. sysop   = WORD(lynes.2,1)
  36.  
  37. bbspath = WORD(lynes.6,1)
  38. IF ~EXISTS(bbspath) THEN
  39.   DO
  40.     SAY bbspath 'does not exist!'
  41.     CALL SETCLIP('BBS_BROWSE')
  42.     CALL GETOUT(22)
  43.   END
  44. testchar=RIGHT(bbspath,1)
  45. IF testchar~='/' & testchar~=':' THEN bbspath=bbspath'/'
  46.  
  47. CALL PRAGMA('P',-4)         /* lower the priority of this task */
  48.  
  49. extension=WORD(lynes.32,1)
  50. arccom=lynes.33
  51. compos=POS('/*',lynes.33)
  52. IF compos>0 THEN lynes.33=LEFT(lynes.33,compos-1)
  53. arccom=STRIP(lynes.33)
  54. IF LEFT(extension,1)~='.' THEN
  55.   DO
  56.     extension='.lzh'
  57.     arccom='lharc -m m'
  58.   END
  59.  
  60. filepath=bbspath'EmailFiles/'name
  61. CALL MAKEDIR(filepath)
  62. IF GETCLIP('BBS_'name)~='' THEN browsename=filepath'/FileList'
  63. ELSE
  64.   DO
  65.     x=OPEN(f,bbspath'Numbers/LastMail','R')
  66.     IF x~=0 THEN lastm=READLN(f)+1
  67.     CALL CLOSE(f)
  68.     ADDRESS COMMAND 'ECHO >'bbspath'Numbers/LastMail 'lastm
  69.     browsename=filepath'/BBBBS_'lastm
  70.   END
  71. filelistname=bbspath'Lists/Files'
  72. filelist.=''
  73. x=OPEN(f,filelistname,'R')
  74. IF x=0 THEN CALL GETOUT(23)
  75. DO i=1
  76.   line=READLN(f)
  77.   IF EOF(f) THEN LEAVE i
  78.   indx=WORD(line,1)
  79.   IF DATATYPE(indx,'N') THEN filelist.indx=line
  80. END
  81. filelist.0=indx
  82. CALL CLOSE(f)
  83. numba=filelist.0
  84.  
  85. IF alphaflag='A' THEN
  86.   DO
  87.     filelistname=filelistname'.ALPHA'
  88.     alphalist.=''
  89.     x=OPEN(f,filelistname,'R')
  90.     IF x=0 THEN CALL GETOUT(24)
  91.     DO i=1
  92.       line=READLN(f)
  93.       IF EOF(f) THEN LEAVE i
  94.       alphalist.i=line
  95.     END
  96.     alphalist.0=i-1
  97.     CALL CLOSE(f)
  98.     numba=alphalist.0
  99.   END
  100.  
  101. x=OPEN(a,browsename,'W')
  102. IF x=0 THEN CALL GETOUT(25)
  103. IF alphaflag='A' THEN temp='alphabetical'
  104. ELSE temp='aged'
  105. title='=' bbsname temp 'file descriptions'
  106. IF libflag='L' THEN title=title 'by library'
  107. CALL WRITELN(a,title)
  108. CALL WRITELN(a,'= Custom archived for' name'  'DATE() TIME('C'))
  109. CALL WRITELN(a,'')
  110. CALL CLOSE(a)
  111.  
  112. IF GETCLIP('BBS_'name)='' THEN
  113.   DO
  114.     x=OPEN(f,bbspath'Email/'name'/BBBBS.'lastm,'W')
  115.     IF x=0 THEN CALL GETOUT(28)
  116.     CALL WRITELN(f,' Mail: 'lastm'   FILE: BBBBS_'lastm)
  117.     CALL WRITELN(f,' From: BBBBS')
  118.     CALL WRITELN(f,'   To: 'name)
  119.     CALL WRITELN(f,' Subj: BrowseList')
  120.     CALL WRITELN(f,' Date: 'DATE('W') DATE() TIME('C'))
  121.     CALL WRITELN(f,LEFT('=',75,'='))
  122.     CALL WRITELN(f,'Here are the file descriptions you requested.')
  123.     CALL WRITELN(f,'The collection process was interrupted.')
  124.     CALL CLOSE(f)
  125.   END
  126.  
  127. IF libflag='A' THEN CALL noteloop(1)
  128. ELSE IF libflag='L' THEN
  129.   DO j=1 TO WORDS(liblist)
  130.     test1=WORD(liblist,j)
  131.     CALL noteloop(0)
  132.   END
  133.  
  134. IF WORD(STATEF(browsename),2)<80 THEN CALL GETOUT(26)
  135. IF GETCLIP('BBS_'name)~='' THEN CALL GETOUT(0)
  136.  
  137. CALL PRAGMA('P',0)         /* normal priority */
  138. ADDRESS COMMAND arccom browsename||extension browsename
  139. IF ~EXISTS(browsename||extension) THEN CALL GETOUT(27)
  140. x=OPEN(f,bbspath'Email/'name'/BBBBS.'lastm,'W')
  141. IF x=0 THEN CALL GETOUT(28)
  142. CALL WRITELN(f,' Mail: 'lastm'   FILE: BBBBS_'lastm||extension)
  143. CALL WRITELN(f,' From: BBBBS')
  144. CALL WRITELN(f,'   To: 'name)
  145. CALL WRITELN(f,' Subj: BrowseList')
  146. CALL WRITELN(f,' Date: 'DATE('W') DATE() TIME('C'))
  147. CALL WRITELN(f,LEFT('=',75,'='))
  148. CALL WRITELN(f,'Here are the file descriptions you requested.')
  149. CALL CLOSE(f)
  150. IF GETCLIP('BBS_level')~='' & WORD(GETCLIP('BBS_lastcaller'),1)=name THEN
  151.   DO
  152.     oldmess=GETCLIP('BBS_MESSAGE')
  153.     IF oldmess~='' THEN oldmess=oldmess||'0D0A'x
  154.     CALL SETCLIP('BBS_MESSAGE',oldmess||'Your archived filelist is waiting in Email.')
  155.   END
  156. CALL GETOUT(0)
  157. EXIT
  158.  
  159.  
  160. noteloop:
  161. ARG nflag .
  162. IF alphaflag='A' THEN
  163.   DO i=1 TO numba
  164.     k=i
  165.     k=STRIP(WORD(alphalist.i,3))
  166.     IF filelist.k='' | lastbrowse>=k THEN ITERATE i
  167.     lname=WORD(filelist.k,2)
  168.     fname=WORD(filelist.k,3)
  169.     IF nflag THEN
  170.       DO
  171.         IF FIND(UPPER(liblist),UPPER(lname))=0 THEN ITERATE i
  172.       END
  173.     ELSE IF UPPER(test1)~=UPPER(lname) THEN ITERATE i
  174.     CALL add_note(bbspath'FileNotes/'lname'/'fname)
  175.   END
  176. ELSE
  177.   DO i=numba TO 1 BY -1
  178.     IF filelist.i='' | lastbrowse>=i THEN ITERATE i
  179.     lname=WORD(filelist.i,2)
  180.     fname=WORD(filelist.i,3)
  181.     IF nflag THEN
  182.       DO
  183.         IF FIND(UPPER(liblist),UPPER(lname))=0 THEN ITERATE i
  184.       END
  185.     ELSE IF UPPER(test1)~=UPPER(lname) THEN ITERATE i
  186.     CALL add_note(bbspath'FileNotes/'lname'/'fname)
  187.   END
  188. RETURN
  189.  
  190.  
  191. add_note:
  192. ARG addname
  193. x=OPEN(a,browsename,'A')
  194. IF x=0 THEN CALL GETOUT(30)
  195. CALL WRITELN(a,'=====')
  196. x=OPEN(b,addname,'R')
  197. IF x=0 THEN CALL WRITELN(a,addname 'failed to open for reading!')
  198. ELSE
  199.   DO
  200.     data=READCH(b,65000)
  201.     CALL CLOSE(b)
  202.     CALL WRITECH(a,data)
  203.   END
  204. CALL WRITELN(a,'')
  205. CALL CLOSE(a)
  206. RETURN
  207.  
  208.  
  209. ERROR:
  210. SYNTAX:
  211.  
  212. GETOUT:
  213. ARG errorout
  214. CALL SETCLIP('BBS_BROWSE')
  215. IF errorout>0 THEN SAY 'ArcBrowse error' errorout'!'
  216. EXIT(errorout)
  217.  
  218.  
  219. /* end of ArcBrowse.rexx */
  220.